<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>正则表达式的语法</title>
</head>
<body>
<script>
    /* 1.使用|(a|b)表示或者的意思
    *  2.[]里面的内容也是或的关系
    *       [ab]==a|b
    *       [a-z]任意的小写字母
    *       [A-Z]任意的大写字母
    *       [A-z]任意字母
    *       [^ab]除了ab
    *       [0-9]任意数字
    *   3.量词 通过量词可以设置一个内容出现的次数
    *       量词只对它前面的内容起作用
    *       {n}正好出现n次
    *       {m,n}出现m到n次
    *       {m,}m次以上
    *       +    至少一个 相当于{1,} 对+前面的数字和字母起效果
    *       *    0个或者多个  有没有都行  相当于{0,}
    *       ?    0个或者1个  相当于{0,1}
    * &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    *       ^   表示开头
    *       $  表示结尾
    *       如果在正则表达式中同时使用^$则要求字符串必须完全符合正则表达式
    *  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    *       . 点表示任意字符 使用\作为转义字符
    *       \.表示点.
    *       \\表示一个\
    *   注意 使用构造函数时,由于它的参数是一个字符串,而\是字符串的转义字符
    *       如果要使用\则需要使用\\来代替
    * &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    *   \w 任意字符、数字、_ 也可以是[A-Z0-9_]
    *   \W  除了字母、数字、_也可以是[^A-Z0-9_]
    *
    *   \d 任意数字[0-9]
    *   \D 除了任意数字[^0-9]
    *
    *   \s 空格
    *   \S 除了空格
    *
    *   \b单词边界
    *   \B
    *
    *
    *  */
    //举例 创建一个正则表达式，检查字符串中是否含有a或者b
    var reg=/a/i;
    reg=/a|b|c/i;
    reg=/[abcddef]/;
    console.log(reg.test("bsc"));
//举例 检查一个字符串是否含有abc 或adc 或 aec
    reg=/a[bde]c/;
    console.log(reg.test("abc"));//true


//创建一个正则表达式检查一个字符串是否含有aaa
    var reg1=/a{3}/;//找连续三个a出现的
    console.log(reg1.test("aaabc"));//true
//ababab
    var reg2=/(ab){3}/;//ab 出现3次  量词只对它前面的内容起作用所以ab需要用小括号括起来才可以
    console.log(reg2.test("abababab"));//true
//b出现1到5次 b{1,5}
    var reg3=/ab{1,5}c/;
    console.log(reg3.test("abc"));//true 1个b
    console.log(reg3.test("abbc"));//true 2个b
    console.log(reg3.test("abbbc"));//true 3个b
    console.log(reg3.test("abbbbc"));//true 4个b
    console.log(reg3.test("abbbbbc"));//true 5个b
    console.log(reg3.test("abbbbbbc"));//false 6个b
//a出现2次以上
    var reg4=/a{2,}/;// a出现2次以上
   console.log(reg4.test("aabbcc")) ;//true
    console.log(reg4.test("aaacd"));//true
//+举例{1,}
    var reg5=/ab+c/;
    console.log(reg5.test("abbbc"));//true
 //*举例{0,}
    var reg6=/ab*c/;
    console.log(reg6.test("ac"));//true
    console.log(reg6.test("abc"));//true
    console.log(reg6.test("abbc"));//true
 //？举例 {0,1}
    var reg7=/ab?c/;
    console.log(reg7.test("ac"));//true
    console.log(reg7.test("abc"));//true
    console.log(reg.test("abbc"));//false
//^ 开头  举例 检查一个字符串是否以a开头
    var reg8=/^a/;
    console.log(reg8.test("abcca"));//true
    console.log(reg8.test("bacaa"));//false
//$ 结尾
    var reg9=/a$/; //以a结尾
    console.log(reg9.test("bbbbcccca"));//true

    var reg10=/^a$/;    //以a开头立马以a结尾 实际上就一个a
    console.log(reg10.test("aaa"));//false
    console.log(reg10.test("a"));//true
//练习题 创建一个正则表达式,用来检查一个字符串是否是一个手机号 检查是否合法
    //分析13146093270 11位
    //1. 以 1开头
    //2.  012 3 4 5 67  89
    //3 位以后为任意数
    //^1[3-9][0-9]{9}$
    var phonestr="13146093270";
    var reg11=/^1[3-9][0-9]{9}$/;
    console.log(reg11.test(phonestr));
//检查一个字符串中是否含有.
  var  reg12=/\./;
  console.log(reg12.test("a.b"));//true

    var reg13=/\w/;
    console.log(reg13.test("ab"));//true
    console.log(reg13.test("########$%^%^"));//false


//创建一个正则表达式,检查一个字符串是否含有单词child
    var reg14=/\bchild\b/;
    console.log(reg14.test("hellochildren"));
    console.log(reg14.test("hello child"));
//举例 去掉空格 文字中的空格不去掉
    var str="            he  llo             ";
    // 去掉字符串中的前后的空格，去掉空格用""来替换
    //去掉开头的空格  /^\s*/g
    //去掉末尾的空格/\s*$/
     var  reg15=/^\s*|\s*$/g ;
     str=str.replace(reg15,"");
     console.log(str);//he  llo

</script>
</body>
</html>